5.3.12. Valikko ja valikkopainike (menu ja menubutton)
Valikko-ohjainta menu käytetään erilaisten valikoiden toteuttamiseen. Yleisin valikko on ikkunan yläreunaan sijoitettava valikko, mutta menu-ohjaimen voi sijoittaa myös muualle ikkunaan. Valikkoon lisätään lisää rivejä add-komennolla.
menu
- ja menubutton-ohjaimien yleisimmin käytetyt optiot ovat
-accelerator |
on ohjaimeen kirjoitettava näppäinyhdistelmä, jonka avulla käsky voidaan myös toteuttaa. Accelerator-optio ei määrittele itse komentoa, vaan se on määriteltävä bind-komennon avulla. |
-underline |
alleviivaa kirjaimen.Alleviivattava kirjain määritellään lukuarvolla. Sanan ensimmäinen kirjain saa arvokseen luvun 0. |
Esimerkissä sijoitetaan ikkunan yläpalkkiin valikko, jossa on toiminnot file, edit sekä help (kuva 5.17).
frame .mbar -relief raised -bd 2
pack .mbar -side top -fill x ;# Valikkopainikkeiden määrittelyt
menubutton .mbar.file -text File -underline 0 -menu .mbar.file.menu
menubutton .mbar.edit -text Edit -underline 0 -menu .mbar.edit.menu
menubutton .mbar.help -text Help -underline 0 -menu .mbar.help.menu ;# Valikoiden file, edit ja help tarkempi määrittely
menu .mbar.file.menu
.mbar.file.menu add command -label "exit" -underline 0 -accelerator "Ctrl+x" -command {exit}
menu .mbar.edit.menu
.mbar.edit.menu add command -label "Undo" -underline 0 -accelerator "Ctrl+u"
.mbar.edit.menu add command -label "Delete" -underline 0 -accelerator "Ctrl+d"
.mbar.edit.menu add command -label "Copy" -underline 0 -accelerator "Ctrl+c"
menu .mbar.help.menu
.mbar.help.menu add command -label "help" -command {puts "apua"}
pack .mbar.file .mbar.edit -side left
pack .mbar.help -side right
focus .mbar ;# määritellään kohdistus valikkoon
Esimerkissä on määritelty myös kirjainyhdistelmät, joiden avulla samat komennot voitaisiin toteuttaa. Nämä määritykset eivät kuitenkaan tee itse komentoja, vaan ne on tehtäv& auml; bind-komennon avulla. focus-komento selitetään luvussa 5.6.2.
Kuva 5.17. Esimerkki valikon ja valikkopainikkeen käytöstä.
Luk-tutkielma: Tcl/Tk -opiksi ja iloksi.